package com.swf.seed.jolt;

/**
 * <p>Title: 一个连接池配置类</p>
 * <p>Description: 与一个Tuxedo服务器的配置,连接池管理器中可以与多个Tuxedo服务器建立连接</p>
 * <p>Copyright: Copyright (c) 2009</p>
 * <p>Company: Beijing Watchdata CO,.Ltd</p>
 * @author da.wang
 * @version 1.0
 */
public class PoolConfigItem {
    /** 应用密码 */
    private String appPassword;

    /** 用户密码 */
    private String userPassword;

    /** 用户名 */
    private String userName;

    /** 用户角色 */
    private String userRole;

    /** 接收超时 */
    private int recvTimeout;

    /** 首选地址列表 //ip:port 形式 */
    private String[] primaryAddrList;

    /** 备选地址列表 */
    private String[] secondaryAddrList;

    /** 连接池名称 */
    private String poolName;

    /** 最小连接数 */
    private int minPoolSize;

    /** 最大连接数 */
    private int maxPoolSize;

    /**
     * 获取备选Tuxedo服务器地址.
     * @return String[]
     */
    public String[] getSecondaryAddrList() {
        return secondaryAddrList;
    }

    /**
     * 获取最小Session池大小
     * @return int
     */
    public int getMinPoolSize() {
        return minPoolSize;
    }

    /**
     * 获取用户角色
     * @return String
     */
    public String getUserRole() {
        return userRole;
    }

    /**
     * 获取池名称
     * @return String
     */
    public String getPoolName() {
        return poolName;
    }

    /**
     * 获取Session池最大连接数
     * @return int
     */
    public int getMaxPoolSize() {
        return maxPoolSize;
    }

    /**
     * 获取接收超时时间
     * @return int
     */
    public int getRecvTimeout() {
        return recvTimeout;
    }

    /**
     * 获取用户密码
     * @return String
     */
    public String getUserPassword() {
        return userPassword;
    }

    /**
     * 设置首选Tuxedo服务器地址列表
     * @return String[]
     */
    public String[] getPrimaryAddrList() {
        return primaryAddrList;
    }

    /**
     * 获取应用密码
     * @return String
     */
    public String getAppPassword() {
        return appPassword;
    }

    /**
     * 设置用户名
     * @param userName String
     */
    public void setUserName( String userName ) {
        this.userName = userName;
    }

    /**
     * 设置备选Tuxedo服务器地址.当首选地址连不上时,会连接备选地址
     * @param secondaryAddrList String[]
     */
    public void setSecondaryAddrList( String[] secondaryAddrList ) {
        this.secondaryAddrList = secondaryAddrList;
    }

    /**
     * 设置Session池中的最小连接数
     * @param minPoolSize int
     */
    public void setMinPoolSize( int minPoolSize ) {
        this.minPoolSize = minPoolSize;
    }

    /**
     * 设置用户角色
     * @param userRole String
     */
    public void setUserRole( String userRole ) {
        this.userRole = userRole;
    }

    /**
     * 设置连接池的名字.如果为空字符串或者null,则使用默认名字. 可以每一个Tuxedo服务器使用一个名字.
     * @param poolName String
     */
    public void setPoolName( String poolName ) {
        this.poolName = poolName;
    }

    /**
     * 设置Session池的最大连接数
     * @param maxPoolSize int
     */
    public void setMaxPoolSize( int maxPoolSize ) {
        this.maxPoolSize = maxPoolSize;
    }

    /**
     * 设置接收超时时间
     * @param recvTimeout int 单位:秒
     */
    public void setRecvTimeout( int recvTimeout ) {
        this.recvTimeout = recvTimeout;
    }

    /**
     * 设置用户密码
     * @param userPassword String
     */
    public void setUserPassword( String userPassword ) {
        this.userPassword = userPassword;
    }

    /**
     * 设置首选Tuxedo服务器地址列表. 通常用一个长度为1的数组,保存一个Tuxedo服务器即可
     * @param primaryAddrList String[]
     */
    public void setPrimaryAddrList( String[] primaryAddrList ) {
        this.primaryAddrList = primaryAddrList;
    }

    /**
     * 获取应用密码
     * @param appPassword String
     */
    public void setAppPassword( String appPassword ) {
        this.appPassword = appPassword;
    }

    /**
     * 获取用户名
     * @return String
     */
    public String getUserName() {
        return userName;
    }

    public PoolConfigItem() {
    }
}
